Fetch Scenario and Action Activity History
Fetches the activity history of Scenarios and Actions in a project using a stateless cursor-based approach. Designed for clients who need to track every create, update and delete operation on Scenarios and Actions, without missing or duplicating records.
Call patterns
Initial call (nocursor)
Omit the cursor field and supply the filters. activityAfter, activityBefore, entityTypes and activityTypes are required. The server returns the first page of activity within the date range and freezes the filters into an opaque cursor token returned as nextCursor.
cursor)
Pass only the cursor field from the previous response's nextCursor. Do not include any filters or dates; they are already frozen inside the cursor. To change filters, make a fresh initial call without a cursor.
Polling
hasMore: true— a full page was returned. Call again immediately withnextCursorto retrieve the next page.hasMore: false— all matching activity has been delivered.- Retrieving newer activity — activity recorded after the initial call is not included in the current cursor. To retrieve recent activity, make a fresh initial call.
Request fields
actorEmails(optional) — list of email addresses of the users whose activity is to be retrieved. Matching is case-insensitive. If omitted or empty, activity of all users is returned. Email addresses that do not match any user return no records.entityTypes(required) — list of entity types to include. Supported values:ACTION,AUTO_SCENARIO,MANUAL_SCENARIO.activityTypes(required) — list of activity types to include. Supported values:CREATE,UPDATE,DELETE. Check-in, check-out and changes to entity are reported asUPDATE.activityAfter(required) — start of the time range (inclusive). Refer to the Date rules section.activityBefore(required) — end of the time range (exclusive). Refer to the Date rules section.limit(optional) — maximum number of records per page. Defaults to 100; values above 1000 are reduced to 1000.cursor— thenextCursorvalue from the previous response. Omit on the initial call. When a cursor is sent, all other fields must be omitted.
Date rules
- Accepted format: ISO 8601 with an explicit UTC offset, e.g.
2026-06-01T00:00:00Z. activityAfteris inclusive;activityBeforeis exclusive.activityAftercannot be in the future.activityAftercannot be older than 1 year.- If
activityBeforeis in the future, it is silently clamped tonow. activityBeforemust be afteractivityAfter(after clamping).- The window between
activityAfterandactivityBeforemust not exceed 90 days.
Ordering and safe upper bound
Results are returned in descending order of when they were recorded, most recent first. A 5-second lag is applied to the upper time bound so that in-flight transactions have time to commit before they are read, preventing gaps in the results.
Access
Tenant admins and users with a role in the project can access this API.
Headers
| Header | Value |
|---|---|
user_id | Login username (email) |
api_key | API key of the user for authentication |
Content-Type | application/json |
Accept | application/json |
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
accelqLoginUrl | string | Yes | The AccelQ login URL for API access. |
tenantCode | string | Yes | Tenant code for identifying the organization. |
projectCode | string | Yes | Project Code found under Auth properties of ACCELQ User Profile |
user_id | string | Yes | Login username (email) |
api_key | string | Yes | API key of the user for authentication |
Request Body
{
"actorEmails": [
"john.doe@company.com"
],
"entityTypes": [
"ACTION",
"AUTO_SCENARIO",
"MANUAL_SCENARIO"
],
"activityTypes": [
"CREATE",
"UPDATE",
"DELETE"
],
"activityAfter": "2026-09-01T00:00:00Z",
"activityBefore": "2026-09-30T00:00:00Z",
"limit": 100
}
Responses
200 - Returns a page of activity records.
{
"data": [
{
"actorEmail": "jane.smith@company.com",
"activityTime": "2026-09-29T11:52:39Z",
"activityType": "DELETE",
"activityDescription": "Deleted",
"entityType": "AUTO_SCENARIO",
"entityId": 20871,
"entityName": "Fund Transfer - Negative"
},
{
"actorEmail": "john.doe@company.com",
"activityTime": "2026-09-29T11:41:31Z",
"activityType": "UPDATE",
"activityDescription": "Input Parameter username created",
"entityType": "ACTION",
"entityId": 10452,
"entityName": "Login to QBANK"
},
{
"actorEmail": "john.doe@company.com",
"activityTime": "2026-09-29T10:56:55Z",
"activityType": "CREATE",
"activityDescription": "Created",
"entityType": "ACTION",
"entityId": 10452,
"entityName": "Login to QBANK"
}
],
"nextCursor": "eyJ2IjoxLCJsYXN0SWQiOjU4MjEyLCJmcm9tRXBvY2hNcyI6MTc5MDEyMTYwMDAwMCwidG9FcG9jaE1zIjoxNzkwNzI2NDAwMDAwLCJlbnRpdHlUeXBlcyI6WyJBQ1RJT04iLCJBVVRPX1NDRU5BUklPIiwiTUFOVUFMX1NDRU5BUklP5VHlwZXMiOlsiQ1JFQVRFIiwiVVBEQVRFIiwiREVMRVRFIl0sImxpbWl0IjoxMDB9",
"hasMore": true
}
400 - Bad Request. Validation errors occurred.
{
"error": "Missing required fields: activityAfter, activityBefore, entityTypes, activityTypes."
}
401 - Unauthorized - Invalid credentials or user does not have permission to fetch activity history.
{
"message": "api_key and/or user_id missing"
}
404 - Project not found.
{
"error": " Project with name ProjectCode not found "
}
cURL Command Builder
URL Parameters
Headers
Request Sample (cURL)
curl -X POST "${{accelqLoginUrl}}/awb/api/2.0/${{tenantCode}}/${{projectCode}}/res/activity-logs" \
-H "user_id: ${{user_id}}" \
-H "api_key: ${{api_key}}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"actorEmails": [
"john.doe@company.com"
],
"entityTypes": [
"ACTION",
"AUTO_SCENARIO",
"MANUAL_SCENARIO"
],
"activityTypes": [
"CREATE",
"UPDATE",
"DELETE"
],
"activityAfter": "2026-09-01T00:00:00Z",
"activityBefore": "2026-09-30T00:00:00Z",
"limit": 100
}'